"""
### 综合案例2：进程间通信与共享数据
**题目描述**：
模拟一个银行账户管理系统，包含以下功能：
1. 使用共享变量（Value）表示账户余额，初始值为1000。
2. 创建两个进程：
   - 进程1：模拟存款操作，每次存款100元，共执行5次。
   - 进程2：模拟取款操作，每次取款50元，共执行5次。
3. 使用互斥锁（Lock）确保对共享变量的操作是进程安全的。
4. 主进程打印最终的账户余额。
**提示**：
- 使用`Value`和`Lock`。
- 注意锁的获取和释放。
"""
from multiprocessing import Value,Lock,Process
def fun1(balance,lock): # 存钱
    for _ in range(5):
        lock.acquire() # 获取锁
        balance.value += 100
        print("存储的余额是",balance.value)
        lock.release() # 释放锁
def fun2(balance,lock): # 取钱
    for _ in range(5):
        lock.acquire() # 获取锁
        balance.value -= 50
        print("存储的余额是",balance.value)
        lock.release() # 释放锁
if __name__ == '__main__':
    balance = Value('i',1000)
    lock = Lock()
    p1 = Process(target=fun1,args=(balance,lock))
    p2 = Process(target=fun2,args=(balance,lock))
    p1.start()
    p2.start()
    p1.join()
    p2.join()










